{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 324,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is:  0.721194298022\n",
      "The r2 score of RidgeCV on train is:  0.900519571481\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xebf4d30>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('alpha is: ', 0.01)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12ac9748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\naeigDuEbAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12a080f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12821ba8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LassoCV on test is:  0.74165466993\n",
      "The r2 score of LassoCV on train is:  0.887084908139\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x13799c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('alpha is: ', 0.01)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAecAAAFtCAYAAAA9JqLqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAGfRJREFUeJzt3Xu0ZGV95vHvQ9MgFy8gJ1zMtB0N\nXsgIiN3chNgi4IhmREXxgswEmU6ylMR4v097YwyjjrcRbW1XGGbpLMwEhSiKTmhABbRb5GKUiAoI\nYoKjoSEjKM1v/tj70MXxdJ/q03VOv019P2vVOlW7du361Xvq1LPfvd96T6oKSZLUju22dgGSJOn+\nDGdJkhpjOEuS1BjDWZKkxhjOkiQ1xnCWJKkxhrM0S0kyzbLtt0Ytkh5YDGdtM5K8LMmxm7H+46aG\nZZI/T/I7G1n/QUk+m+ShSXZKcn6SiU08xaFJvjJl2cVJDhqith2SLJhmWfrrRw6xjTdtamcgyfOT\nnJLk9zfxmpcm+Y8Dt5+d5E9neN7H9T8fleSoIercLsnFSR4507qSOoaztiVfAt6X5HiAJO9M8swk\nv5PkkH7Zd/ufAf4OWDL54CS7An8JrNvI9k8D9gaeCBwC/Ax4YZJlSZ6a5PAp6z8B+PrA9h8G7AFc\nObhSkn2SfCfJJUmuTHIp8DZgdZIbkvxjktXAxcCiJAuBNyf52yTLk3wzyer+5yv6sEtf7/okT0ty\nfZLv95frkxwKPBTYF3gucPZgT39gR+Bm4NSBHYXXAD+eXGdqAyV5JvA3/WMLWJlk542056RnADtX\n1Y0zrDeUJCuSvGcU25Ja5SE4bTOq6pYkxwEv6BdtDyykC6D/BFwB/Kq/7+nA5cBVSd4IPAd4GLAA\n+GofLrsCR1TVHUmeCLwT+Cu6QH8Q8DzgOjYE/D8D3wBIcj6wFPhVv7PwLuAh/XP8oM/Bvapq16r6\naZKnAI8AVgGvq6rL+u18GLigqr44+Fr71/lU4PHAR4G/pQvZvYCzgTOB9VVVfbDvB3ynr/U3wPr+\n+bYD3gv8X2ARMBmQHwAOBO7tb69L8g/A3cBbk7wNuAd4ykBN2wH/GXhzdVML/jjJF/ttLR9Y7zDg\nM8Cd/TYeA9ya5DuDL7H//b28qlYj6X4MZ20T+vB8Il2YfKhf/Bu63tv6aR7yauBU4D8A+1TVwUk+\nB7y1qq6Zsu2H04XJz4FjgF/T/W3sDDyrX+0hdGE86dHA46rqX5K8C3hw/1x/WFXX9dv94cD6vwtc\nCry/qi5LciBd6D4aODzJm4A1VfXKJHsBB1bVl5I8vn/8d+lCdvJ13zO54apa37+GdVX1//rnPhpY\nRreTsowumPcETu8f9nJg+6r6Tb/+PwFPrqpf97d3mKZdXwPcXlWfH1j2JuDyJO8DXlOdy4DF/XZe\nBJxSVcck+STw55M1Sto4D2trW7EDXQC+j663PLnstyaHT3ISXRD9MfCnwHeTXAkcAXy87/UO2hl4\nM3A9XWC+F/gwcHt//b10veqHDDzm3inbeApQk8E8uE5/Xvg64HjgHwZq/xHwe8CL6HYkfq+/byfg\njCnnfu9i44fjAV4ILO4PaV8JHEt3lOBm4ISq2ruqTh84tL078I0kX0tyTb/u3/e3v053uP64yY0n\neRrwSgZ6yHQv+E7gKOBo4JIkjx14zGK6dpt8zFOZ5vc1Kv3h/pVJftq3w7FTlt+a5KYkzxli+fuS\n3JLkqiRLN/W80lyw56xtQlVdAVyR5C/perbQHZa+a5rVLwR+CpwM/FVVfSbJIrpzwd8CPjZl2z8B\nfpLkNODf0B2a3onu72Nxv9oOwGWbKPGbwCeTrKqql/XLJgP8KOAddIeZ70jyif42dIej3w38BX1w\nVdWP+zB8BN0OBXS92GmDLcmD6YLzycDDgddW1ev6oDwHeHF/Tv7fAk9PciNdD3hp//g3ADtU1Tum\nbHf7fsdiJ2Al8FbgsiQ70R2WntxZ2L1//qV9nSTZG/gC8Ejg3H6f4HfpetlF15N/aVV9Icnn6c7x\nD/oU8AcbWf5rpre0r2UR3eH9D9G9Fw6kOwLySLojFacB525i+Sn9fY8GDgc+m+SxVXX3Rp5XGjnD\nWduyxwI30YXpfarqn5P8BljQB/PD6Q5zr6Xrdf9+ksuAO6pqcPT3LsAf0X34Tw6WOqG/byFdWL56\nYP1Lk6ynOw/8hqr6WpL3Jnl6VX15oJ4LgQv7QUyX0x0K/jZdmOxC14O+n6q6Lckf0x3d+teBu6b7\nmz2RbvDb64EfAj9MNzBuHV1Q/Rj4HvCTPviXAp9Icg+wY9+OVyf591O2uwB4U1VdkOTx/SHvVUnO\nAG6pqg8CJPkS8P2qWtnfPoDuHPkH6c6vH9gvvx44pKruSvLXfTtTVc+e5jVtVJIV0y2vqiuSvJ9u\nx+cYYHKk/Q/pdpT+K/D3dDsSm1r+DOATVXUX3dGE2+kG/63ZnDqlLeFhbW2LnpRkd7oez3VT70yy\nB3Ae8Kj+EO1xdD3Kk4Hn0w0cOwl45sBjFtL1tI6uqmX99Y9X1bL+8mTgjYMjnoEj++D55MCy9wEn\nJ3kQ3YCo31JVB7Oh9/cHdCEBA8HbD6o6ma63vh1wC93OxWq60Jw8tA9db/JVwL/Q9cI/DRxeVYfR\n9ejvBs6g66VTVd+qqgOrakm//Q8AB1fVkskL3fnnJ1bVBf1jBnurT+nbcNIj6HZkJt1OF+ofYtNG\neog7yUuA/053hOQV9z1J1e10r/1S4MXAVza1fJraatS1SjOx56xtzXZ0YXg2cHk/Wvl+X/mpqp/3\n5w+vpQuxPejO6S5jQ+9oeb+t16b7itWX+uV/0g8++xXd15Q+TNdj+k1//4l0Qbkx59LtGDyMTZ8j\n/ifg/H57f90/36qB+18NvLOqLu57tNfSff3qRXSHme/rbVfVvcC9fW/5gqq6emA73wfOAp7enxoA\nIMmOdKG8F91o6q/154jvAG4DHpTk8CmhTJJn0x2RuHxg8d4MtElV3QDc0N/8rQ5A//t6OAOD2kbk\nMODLwOeBFQPP9zTgz+jOy3+bbgxC6E43TLf8AuBl/QDCQ+l+l9eOuFZpkwxnbTPSTQiyJ/BGuoFG\nz+nvugn43/31XZI8hq5XfDrdIeEb6b6S9HS685730gXdlUnOr6pLkvwRXY/wJLpe8w3APnSjpP+C\n7vzpRXQjuqEL/cHD2m/tl99L93f17+gGmA16EBvOK9+Q7utVE3Q97HPpem8kOQY4AHhBf974BXTn\niz8CvKOq3tSvd1/vOcnz6HrNS/uAeUpf0010g9AW9yO/bwN+Qjc6/SvAc6vqnn4bH6Hb4fmfG2n/\nZ9MNmJv8nvlD+rru2sT52B0Hrk9+9e1quh2Xq6d9xHBeleQVA7dPotvJOQd4Kd3rm0jyULrvj59E\ntwNxD92h9kqyseWfonu//Iju9/18zzdr3lWVFy/bxIXucO6z6c7TPmMj67yV7hzqa4E9+mVvo+up\nHQfcCryiX344XbjsShe8/wV4ZH/fnwH/rb++kG5HYBWwuF92KrBjf/0A4DH99b3pzre+DnjIQF3n\nAtfQ7Rw8DPgsXQ97t/7+/el6uY/ut3dCv/z/AC/qr+9Gt+OwHd1Ow0X98iP713VQf/vV/es5sr+9\nB10Qr6PbAdidbufh+L6mNf3lJ8A/9tfX0p0y2Kvfxgf753zSwGt6HV2P8uRN/M52HLh+S/8aFm7t\n95IXL61fUuWpFI2HdJNoUN1h4K1dy+Or6ntTlk1U1W1Tli2s/rvIU5bvXAPfF07y4Kq6Y4bn3A/4\nXs3ij74fEX7XdLVIGj3DWZKkxjhaW5KkxhjOkiQ1Zs5Ha++xxx61ePHiuX4aSZKat3bt2p9X1ab+\nFS0wD+G8ePFi1qxxYh1Jkvrpc2fkYW1JkhpjOEuS1BjDWZKkxhjOkiQ1xnCWJKkxhrMkSY0xnCVJ\naozhLElSYwxnSZIaM1Q4J9k9yTFJ9pjrgiRJGnczhnOS3YC/Aw4GLkoykWRVksuSvGXOK5QkacwM\nM7f2/sCrquryPqiPAhZU1WFJPpVk36r6wdyWKUnS+JgxnKvqYoAkf0jXe94dOKe/+0LgCMBwliRp\nRIb6r1RJApwI/BIo4Jb+rl8AB02z/nJgOcCiRYtGUqikLbRixezukzTvhhoQVp2XA1cDhwM79Xft\nOt02qmplVS2pqiUTEzP+20pJkjRgmAFhr09ycn/zYcB76A5lAxwA3DA3pUmSNJ6GOay9EjgnyanA\ntcDngEuS7AM8Azh0DuuTJGnsDDMg7JfAMYPLkizrl51RVbfPTWmSJI2noQaETdUH9jkzrihJkjab\n03dKktQYw1mSpMYYzpIkNcZwliSpMYazJEmNMZwlSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGGM6S\nJDXGcJYkqTGGsyRJjTGcJUlqzKz+ZaQksWLF7O6TNCN7zpIkNcZwliSpMYazJEmNMZwlSWqM4SxJ\nUmMMZ0mSGmM4S5LUGMNZkqTGGM6SJDXGcJYkqTFO3ylp05yKU5p39pwlSWqM4SxJUmMMZ0mSGmM4\nS5LUGMNZkqTGGM6SJDXGcJYkqTGGsyRJjTGcJUlqjOEsSVJjDGdJkhpjOEuS1BjDWZKkxhjOkiQ1\nxnCWJKkxM/4/5yQPBf4XsAD4V+BE4HrgR/0qp1XVNXNWoSRJY2aYnvNLgPdX1bHAz4A3AJ+pqmX9\nxWCWJGmEZgznqvpoVX2lvzkB3AM8K8k3k6xKMmPvW5IkDW/oc85JDgN2A74CHF1VBwMLgePmqDZJ\nksbSUL3eJLsDHwaeB/ysqu7u71oD7DvN+suB5QCLFi0aTaWSZrZixdauQNIIzNhzTrID8FngjVV1\nI3B2kgOSLACOB66a+piqWllVS6pqycTExMiLliTpgWyYw9ovAw4C3pxkNfBd4GzgO8BlVfXVuStP\nkqTxM+Nh7ao6EzhzyuK3z005kiTJSUgkSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGGM6SJDXGcJYk\nqTGGsyRJjTGcJUlqjOEsSVJjDGdJkhpjOEuS1BjDWZKkxhjOkiQ1xnCWJKkxhrMkSY0xnCVJaozh\nLElSYwxnSZIaYzhLktQYw1mSpMYYzpIkNcZwliSpMYazJEmNMZwlSWqM4SxJUmO239oFSGrAihVb\nuwJJA+w5S5LUGMNZkqTGGM6SJDXGcJYkqTGGsyRJjTGcJUlqjOEsSVJjDGdJkhpjOEuS1BjDWZKk\nxhjOkiQ1xnCWJKkxhrMkSY0xnCVJaozhLElSYwxnSZIaYzhLktSYGcM5yUOTXJDkwiTnJtkhyaok\nlyV5y3wUKUnSOBmm5/wS4P1VdSzwM+CFwIKqOgx4VJJ957JASZLGzfYzrVBVHx24OQGcBHygv30h\ncATwg9GXJknSeJoxnCclOQzYDbgBuKVf/AvgoGnWXQ4sB1i0aNEWFymNnRUrZnefpAeEoQaEJdkd\n+DBwCnAnsFN/167TbaOqVlbVkqpaMjExMapaJUkaC8MMCNsB+Czwxqq6EVhLdygb4AC6nrQkSRqR\nYXrOL6M7dP3mJKuBAC9N8n7gBcAX5q48SZLGzzADws4EzhxcluQ84BjgjKq6fY5qkyRpLA09IGxQ\nVf0SOGfEtUiSJJwhTJKk5hjOkiQ1xnCWJKkxhrMkSY2Z1YAwSSPwQJ7pyxnOpC1iz1mSpMYYzpIk\nNcZwliSpMYazJEmNMZwlSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGOEOYpHY4s5gE2HOWJKk5hrMk\nSY0xnCVJaozhLElSYwxnSZIaYzhLktQYw1mSpMYYzpIkNcZwliSpMc4QJml+OdOXNCN7zpIkNcZw\nliSpMYazJEmNMZwlSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGGM6SJDXGGcKkbY0zbEkPePacJUlq\njOEsSVJjDGdJkhpjOEuS1BjDWZKkxhjOkiQ1ZqhwTrJnkkv7649IcnOS1f1lYm5LlCRpvMz4Peck\nuwFnAbv0iw4B3l1VZ85lYZIkjathes7rgROBdf3tQ4FTk3w7yelzVpkkSWNqxnCuqnVVdfvAoguA\nZcBS4LAk+099TJLlSdYkWXPbbbeNrFhJksbBbAaEfaOq7qiq9cCVwL5TV6iqlVW1pKqWTEx4SlqS\npM0xm3D+cpK9k+wMHAtcO+KaJEkaa7P5xxdvBy4Cfg18rKquG21JkiSNt6HDuaqW9T8vAh43VwVJ\nkjTunIREkqTGGM6SJDXGcJYkqTGGsyRJjTGcJUlqjOEsSVJjZvM9Z0lTrVixecslaRPsOUuS1BjD\nWZKkxhjOkiQ1xnCWJKkxhrMkSY0xnCVJaozhLElSYwxnSZIaYzhLktQYw1mSpMYYzpIkNcZwliSp\nMYazJEmNMZwlSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGGM6SJDXGcJYkqTGGsyRJjTGcJUlqjOEs\nSVJjDGdJkhpjOEuS1BjDWZKkxhjOkiQ1xnCWJKkxhrMkSY0xnCVJaozhLElSYwxnSZIaYzhLktQY\nw1mSpMYYzpIkNcZwliSpMUOFc5I9k1zaX1+Y5PwkX09yytyWJ0nS+JkxnJPsBpwF7NIvOg1YW1VP\nBk5I8uA5rE+SpLEzTM95PXAisK6/vQw4p79+CbBk9GVJkjS+tp9phapaB5BkctEuwC399V8Ae059\nTJLlwHKARYsWjaJOaXRWrJjdfaN+Lo3OfP5OpXkwmwFhdwI79dd3nW4bVbWyqpZU1ZKJiYktqU+S\npLEzm3BeCxzRXz8AuGFk1UiSpJkPa0/jLOCLSY4E9gOuGG1JkiSNt6F7zlW1rP95I3AM8HXg6Kpa\nPzelSZI0nmbTc6aqfsqGEduSJGmEnCFMkqTGGM6SJDXGcJYkqTGGsyRJjTGcJUlqjOEsSVJjDGdJ\nkhpjOEuS1BjDWZKkxhjOkiQ1xnCWJKkxhrMkSY0xnCVJaozhLElSYwxnSZIaYzhLktQYw1mSpMYY\nzpIkNcZwliSpMYazJEmNMZwlSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGbL+1C5CkoaxYMdrHzXZ7\n0jyw5yxJUmMMZ0mSGmM4S5LUGMNZkqTGGM6SJDXGcJYkqTGGsyRJjTGcJUlqjOEsSVJjnCFMGpYz\nSkmaJ/acJUlqjOEsSVJjDGdJkhpjOEuS1BjDWZKkxhjOkiQ1ZrPDOcn2SW5Ksrq/PGEuCpMkaVzN\n5nvO+wOfqarXj7oYSZI0u8PahwLPSvLNJKuSOJGJJEkjlKravAckS4Gbq+rWJP8D+JuqOm/KOsuB\n5QCLFi160o033jiqeqXhOJuXtoTvH82RJGuraslM682m53x1Vd3aX18D7Dt1hapaWVVLqmrJxMTE\nLJ5CkqTxNZtwPjvJAUkWAMcDV424JkmSxtpszhe/A/g0EOC8qvrqaEuSJGm8bXY4V9W1dCO2JUnS\nHHASEkmSGmM4S5LUGMNZkqTGGM6SJDXGcJYkqTFOvanR2tTMSrOZdWnU25Na5PtcU9hzliSpMYaz\nJEmNMZwlSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGGM6SJDXGcJYkqTHOEDbO5ntWovmcPUzaGnxP\nakTsOUuS1BjDWZKkxhjOkiQ1xnCWJKkxhrMkSY0xnCVJaozhLElSYwxnSZIaYzhLktQYZwhTG5xZ\nSS2Z79nz5tMD+bU9gNhzliSpMYazJEmNMZwlSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGGM6SJDXG\ncJYkqTGGsyRJjdk2p++c7RRzs5m2bi6ms5vPbW4r9Uvbim3h/T/ff/fbQptsSoOvzZ6zJEmNMZwl\nSWqM4SxJUmMMZ0mSGmM4S5LUGMNZkqTGzDqck6xKclmSt4yyIEmSxt2swjnJc4EFVXUY8Kgk+462\nLEmSxtdse87LgHP66xcCR4ykGkmSRKpq8x+UrAI+VFVXJTkWOKiq3jNw/3JgeX/zscB1wB7Az7e8\n5LFhe20e22t4ttXmsb2GZ1vN7JFVNTHTSrOdvvNOYKf++q5M6YFX1Upg5eCyJGuqasksn2/s2F6b\nx/Yanm21eWyv4dlWozPbw9pr2XAo+wDghpFUI0mSZt1z/hxwaZJ9gGcAh46uJEmSxtuses5VtY5u\nUNjlwFOr6vYhHrZy5lU0wPbaPLbX8GyrzWN7Dc+2GpFZDQiTJElzxxnCJElqzJyFc5I9k1w6wzqP\nSHJzktX9Zcbh5Q9EQ7bVwiTnJ/l6klPmq7YWDTM7XZLtk9w08N56wnzW2IIh28mZ/noztYXvqfub\n6XPLz6wtMyfhnGQ34CxglxlWPQR4d1Ut6y+3zUU9LduMtjoNWFtVTwZOSPLgOS+uQZsxO93+wGcG\n3lvXzF+VW98w7eRMfxsM2RZj/Z4aNOTnlp9ZW2Cues7rgROBdTOsdyhwapJvJzl9jmpp3bBttYwN\ns7JdAozrdwmXMdzsdIcCz0ryzb5HNNtvJmyrljFzOw2zzrhYxsxtMe7vqUHDfG4tw8+sWRtJOCf5\n+MChntXAK4ccwX0B3S9wKXBYkv1HUU/LtqCtdgFu6a//AthzrmpsyTTtdRrDtcO3gKOr6mBgIXDc\nnBfblmHeL2P5ntqIYdpi3N9T96mqdUN8bvn+2gIj2fOrqj+Z5UO/UVV3AyS5EtgXuHoUNbVqC9pq\ncla22+lmZbtzZEU1bGp7Jfkgm5idbsDVk+8tYA3de2ucbHIWv81YZ1wM0xbj/p7aXGP5mTUqW/uP\n8ctJ9k6yM3AscO1WrqdlzsrWGbYdzk5yQJIFwPHAVfNQW0uGaSffUxsM0xbj/p7aXL6/tsC8nTNJ\nchSwX1V9ZGDx24GLgF8DH6uq6+arnpZtpK3OAr6Y5EhgP+CKrVLc1vdbs9Ml2Q94cVUNjrJ9B/Bp\nIMB5VfXV+S91q5raTi9M8q4pbeRMfxsM017j/p7aKD+zRs9JSLYh/QfHEcCXhzxP/YDUjxQ9Brik\nqn62tetp1TDtZFtuYFuMnp9Zs2c4S5LUmK19zlmSJE1hOEuS1BjDWZKkxhjOkiQ1xnCWJKkxhrMk\nSY35/+cYMlU5wQLuAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xef8fe48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12a087b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x128214e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# _*_ coding: utf-8 _*_\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.metrics import r2_score\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "import os\n",
    "import matplotlib\n",
    "%matplotlib inline\n",
    "#指定默认字体  \n",
    "# matplotlib.use('qt4agg')\n",
    "matplotlib.rcParams['font.sans-serif'] = ['SimHei']   \n",
    "matplotlib.rcParams['font.family']='sans-serif'  \n",
    "#解决负号'-'显示为方块的问题  \n",
    "matplotlib.rcParams['axes.unicode_minus'] = False \n",
    "\n",
    "# 数据读取\n",
    "data_file_path = os.path.join(os.path.abspath('.'),'data','day.csv')\n",
    "data = pd.read_csv(data_file_path)\n",
    "feature_engineering_is_visualization = False  # 默认特征工程时不对结果进行可视化\n",
    "\n",
    "# 1. 适当的特征工程（及数据探索）\n",
    "# 降维，过滤不必要的特征\n",
    "# 训练样本数目：731\n",
    "# 输入特征属性X: 15个特征(15 - 5)\n",
    "# 输出当天租车人数y: cnt (y为连续值，所以是回归问题)\n",
    "# 数据完整，无缺失值情况\n",
    "\n",
    "def feature_engineering(data, visualization=False):\n",
    "    \"\"\"\n",
    "    特征工程,数据探索\n",
    "    param:data数据\n",
    "    param:visualization 是否可视化\n",
    "    \"\"\" \n",
    "    # 非作业要求的输出值 casual,registered,剔除\n",
    "    data = data.drop(['casual','registered'],axis=1)\n",
    "    # dteday日期 = yr年份 + mnth月份,而日期无法直接进行数值处理 所以日期可以剔除，保留年份、月份\n",
    "    data = data.drop('dteday',axis=1)\n",
    "    # 不研究数据 hr\n",
    "    # data = data.drop('hr',axis=1)\n",
    "    if visualization:\n",
    "        data.head()\n",
    "        data.shape\n",
    "        # data.info()\n",
    "        data.mean()\n",
    "        data.isnull().sum()\n",
    "\n",
    "        # 查看目标y(当天租车人数)的直方图/分布图\n",
    "        fig = plt.figure()\n",
    "        sns.distplot(data.cnt.values, bins=30,kde=True) # 连续值 直方图\n",
    "        plt.xlabel(u'每天租车总人数')\n",
    "        plt.show()\n",
    "\n",
    "        plt.scatter(data.instant, data['cnt'].values, color='purple') # 单个散点图\n",
    "        plt.title(u'从2011-1至2012-12租车总人数分布')\n",
    "        # 总的来说，y的值，12年比11年大，每年y的数按时间成n型分布。\n",
    "        # 查看数据分布，是否有异常数据点\n",
    "        # 离散型数据：season mnth holiday weekday workingday weathersit yr\n",
    "        fig = plt.figure()\n",
    "        sns.countplot(data.season.values)\n",
    "        plt.title(u'季节 season')\n",
    "        plt.xlabel(u'1.春天 2.夏天 3.秋天 4.冬天')\n",
    "        plt.show()\n",
    "        fig = plt.figure()\n",
    "        sns.countplot(data.mnth.values)\n",
    "        plt.title(u'月份 mnth')\n",
    "        plt.xlabel(u'月份')\n",
    "        plt.show()\n",
    "        fig = plt.figure()\n",
    "        sns.countplot(data.holiday.values)\n",
    "        plt.title(u'是否节假日 holiday')\n",
    "        plt.xlabel(u'是否节假日')\n",
    "        plt.show()\n",
    "        fig = plt.figure()\n",
    "        sns.countplot(data.weekday.values)\n",
    "        plt.title(u'一星期中的哪天 weekday')\n",
    "        plt.xlabel(u'一星期中的哪天 0~6')\n",
    "        plt.show()\n",
    "        fig = plt.figure()\n",
    "        sns.countplot(data.workingday.values)\n",
    "        plt.title(u'是否工作日 workingday')\n",
    "        plt.xlabel(u'是否工作日')\n",
    "        plt.show()\n",
    "        fig = plt.figure()\n",
    "        sns.countplot(data.weathersit.values)\n",
    "        plt.title(u'天气 weathersit')\n",
    "        plt.xlabel(u'天气：1.晴天，多云 2.雾天，阴天 3.小雪，小雨 4.大雪，大雨，大雾')\n",
    "        plt.show()   # 发现没有大雨、大雪、大雾的数据,情况可以算正常\n",
    "        fig = plt.figure()\n",
    "        sns.countplot(data.yr.values)\n",
    "        plt.title(u'年份 yr')\n",
    "        plt.xlabel(u'1:2011, 2:2012')\n",
    "        plt.show()\n",
    "        data = data.drop(['casual','registered'],axis=1)\n",
    "        # 有规律的自增值 instant 记录号\n",
    "        plt.plot(range(len(data.instant.values)), data.instant.values, \"b-\")\n",
    "        plt.show()\n",
    "        print sum([x for idx,x in enumerate(data.instant.values) if idx > 0 and data.instant.values[idx-1] + 1 != x])\n",
    "        # 结果为0，自增值为连续的。\n",
    "\n",
    "        # 连续型数据: temp atemp hum windspeed\n",
    "        plt.scatter(data.temp, data['cnt'].values, color='purple')\n",
    "        plt.title(u'温度与当天的租车总人数分布')\n",
    "        plt.show()\n",
    "        plt.scatter(data.atemp, data['cnt'].values, color='purple')\n",
    "        plt.title(u'体感温度与当天的租车总人数分布')\n",
    "        plt.show()\n",
    "        plt.scatter(data.hum, data['cnt'].values, color='purple')\n",
    "        plt.title(u'湿度与当天的租车总人数分布')\n",
    "        plt.show()\n",
    "        plt.scatter(data.windspeed, data['cnt'].values, color='purple')\n",
    "        plt.title(u'风速与当天的租车总人数分布')\n",
    "        plt.show()\n",
    "        #　连续型数据检查发现也就１,２个数据会偏离正常值，\n",
    "        # 风速 > 0.48 ,湿度 < 0.2 的数据可以考虑剔除\n",
    "\n",
    "        # 检查两两特征之间的相关性\n",
    "        data_corr = data.corr().abs()\n",
    "        plt.subplots(figsize=(13,9))\n",
    "        sns.heatmap(data_corr, annot=True)\n",
    "        sns.heatmap(data_corr, mask=data_corr<1, cbar=False)\n",
    "        plt.show()\n",
    "        cols = data_corr.columns\n",
    "        threshold = 0.5\n",
    "        corr_list = []\n",
    "        size = data_corr.shape[1]\n",
    "        for i in range(size):\n",
    "            for j in range(i+1, size):\n",
    "                if (data_corr.iloc[i,j] >= threshold and data_corr.iloc[i,j] < 1):\n",
    "                    corr_list.append([data_corr.iloc[i,j],i,j])\n",
    "        s_corr_list = sorted(corr_list, key=lambda x:-abs(x[0]))\n",
    "        for v,i,j in s_corr_list:\n",
    "            print('{} and {} = {}'.format(cols[i], cols[j],v))\n",
    "        # 查看相关特征的散点图\n",
    "        for v,i,j in s_corr_list:\n",
    "            sns.pairplot(data, size=6,x_vars=cols[i],y_vars=cols[j])\n",
    "\n",
    "    # 气温与体感温度呈线性强相关性，月份与季节 也是强相关性\n",
    "    # 考虑气温比体感温度更常用，月份比季节更能细分时间，所以过滤掉 体感温度，季节\n",
    "    data = data.drop(['atemp','season'],axis=1)\n",
    "    # instant 记录号 可以看成公司运营时间长短，年份就显得不重要了，只作为数据分割\n",
    "    # data = data.drop('instant',axis=1)\n",
    "    return data\n",
    "\n",
    "data = feature_engineering(data,feature_engineering_is_visualization)  \n",
    "\n",
    "# 2. 训练数据和测试数据分割  2011年为训练数据，2012年的为测试数据 \n",
    "train_data = data[data.yr == 0].drop('yr',axis=1)\n",
    "test_data = data[data.yr == 1].drop('yr',axis=1)\n",
    "y_train = train_data['cnt']\n",
    "X_train = train_data.drop('cnt',axis=1)\n",
    "y_test =  test_data['cnt']\n",
    "X_test =  test_data.drop('cnt',axis=1)\n",
    "\n",
    "# 数据预处理（数值型特征归一化）\n",
    "from sklearn.preprocessing import StandardScaler,MinMaxScaler,MaxAbsScaler,PolynomialFeatures\n",
    "from scipy.sparse import hstack\n",
    "\n",
    "def preprocessing_data(pre_data):    \n",
    "    scattered_columns = ['mnth', 'weekday','workingday','weathersit','holiday']  # 离散型特征\n",
    "    continuous_columns = ['temp','hum','windspeed','instant']                    # 数值型特征\n",
    "    scattered_data = pre_data[scattered_columns]\n",
    "    continuous_data = pre_data[continuous_columns]\n",
    "    ss_X = MinMaxScaler()\n",
    "    one_hot_encoder = OneHotEncoder()\n",
    "    poly = PolynomialFeatures(degree=3)\n",
    "    continuous_data = ss_X.fit_transform(continuous_data)             # 数值型特征归一化\n",
    "    continuous_data = poly.fit_transform(continuous_data)             # \n",
    "    scattered_data = one_hot_encoder.fit_transform(scattered_data)    # 离散型特征one-hot-encoder\n",
    "    return hstack((continuous_data, scattered_data))                  # 合并\n",
    "    \n",
    "# 对训练集、测试集进行归一化\n",
    "X_train = preprocessing_data(X_train)\n",
    "X_test = preprocessing_data(X_test)\n",
    "\n",
    "# 对目标值进行标准化\n",
    "ss_y = StandardScaler() \n",
    "y_train =  ss_y.fit_transform(y_train.values.reshape(-1,1))\n",
    "y_test =  ss_y.fit_transform(y_test.values.reshape(-1,1))\n",
    "\n",
    "\n",
    "# 3. 岭回归，并选择最佳的正则参数 (参数优化,结果可视化)\n",
    "from sklearn.linear_model import RidgeCV\n",
    "# 设置超参数（正则参数）范围\n",
    "alphas = [0.001,0.01,0.1,1,10,100]\n",
    "\n",
    "# 生成一个RidgeCV实例\n",
    "ridge = RidgeCV(alphas=alphas, store_cv_values=True)              # 默认配置初始化 \n",
    "ridge.fit(X_train, y_train)             # 训练模型参数\n",
    "\n",
    "y_train_pred_ridge = ridge.predict(X_train)  # 预测 训练 数据\n",
    "y_test_pred_ridge = ridge.predict(X_test)    # 预测 测试 数据\n",
    "\n",
    "# 模型评估\n",
    "print 'The r2 score of RidgeCV on test is: ', r2_score(y_test, y_test_pred_ridge)\n",
    "print 'The r2 score of RidgeCV on train is: ', r2_score(y_train, y_train_pred_ridge)\n",
    "\n",
    "# 查看各特征的权重系数\n",
    "columns = ['temp','hum','windspeed','instant'] \n",
    "fs = pd.DataFrame({'columns':list(columns), 'coef':list(ridge.coef_.T)[:4]})\n",
    "fs.sort_values(by=['coef'], ascending=False)\n",
    "\n",
    "#　找出最佳参数\n",
    "mse_mean = np.mean(ridge.cv_values_, axis=0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1))\n",
    "plt.plot(np.log10(ridge.alpha_)*np.ones(len(alphas)),list(mse_mean[0]))\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "print('alpha is: ', ridge.alpha_)\n",
    "# 训练集（测试集）的预测残差分布，看是否符合模型假设：噪声为0均值的高斯噪声\n",
    "\n",
    "f, ax = plt.subplots(figsize=(7,5))\n",
    "f.tight_layout()\n",
    "ax.hist(y_train-y_train_pred_ridge, bins=60, label=u'训练集的预测残差分布', color='b', alpha=.5)\n",
    "ax.set_title(u'训练集的预测残差分布--岭回归')\n",
    "\n",
    "f, ax = plt.subplots(figsize=(7,5))\n",
    "f.tight_layout()\n",
    "ax.hist(y_test-y_test_pred_ridge, bins=60, label=u'岭回归', color='g', alpha=.5)\n",
    "ax.set_title(u'测试集的预测残差分布--岭回归')\n",
    "\n",
    "plt.figure(figsize=(4,3))\n",
    "plt.scatter(y_train, y_train_pred_ridge)\n",
    "plt.plot([-3,3],[-3,3], '--k')\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True Num')\n",
    "plt.ylabel('Predicted Num')\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "\n",
    "# 4. Lasso, 并选择最佳的正则参数\n",
    "from sklearn.linear_model import LassoCV\n",
    "lasso = LassoCV()  # alphas默认\n",
    "# 训练\n",
    "lasso.fit(X_train, y_train)\n",
    "# 预测\n",
    "y_test_pred_lasso = lasso.predict(X_test).reshape(-1,1)\n",
    "y_train_pred_lasso = lasso.predict(X_train).reshape(-1,1)\n",
    "# 模型评估\n",
    "print 'The r2 score of LassoCV on test is: ', r2_score(y_test, y_test_pred_lasso)\n",
    "print 'The r2 score of LassoCV on train is: ', r2_score(y_train, y_train_pred_lasso)\n",
    "\n",
    "# 查看各特征的权重系数\n",
    "columns = ['temp','hum','windspeed','instant'] \n",
    "fs = pd.DataFrame({'columns':list(columns), 'coef':list(lasso.coef_.T)[:4]})\n",
    "fs.sort_values(by=['coef'], ascending=False)\n",
    "\n",
    "#　找出最佳参数\n",
    "\n",
    "mses = np.mean(lasso.mse_path_, axis=1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses)\n",
    "plt.plot(np.log10(lasso.alpha_)*np.ones(len(lasso.alphas_)),list(mses))\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "print('alpha is: ', ridge.alpha_)\n",
    "\n",
    "# 训练集（测试集）的预测残差分布，看是否符合模型假设：噪声为0均值的高斯噪声\n",
    "\n",
    "fig, axes = plt.subplots(figsize=(7,5))\n",
    "fig.tight_layout()\n",
    "axes.hist(y_train-y_train_pred_lasso, bins=60, label=u'训练集的预测残差分布Lasso', color='r', alpha=.5)\n",
    "axes.set_title(u'训练集的预测残差分布--Lasso')\n",
    "\n",
    "fig, axes = plt.subplots(figsize=(7,5))\n",
    "fig.tight_layout()\n",
    "axes.hist(y_test-y_test_pred_lasso, bins=60, label=u'测试集的预测残差分布Lasso', color='r', alpha=.5)\n",
    "axes.set_title(u'测试集的预测残差分布--Lasso')\n",
    "\n",
    "\n",
    "fig, axes = plt.subplots(figsize=(7,5))\n",
    "plt.scatter(y_train, y_train_pred_lasso)\n",
    "plt.plot([-3,3],[-3,3], '--k')\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True Num')\n",
    "plt.ylabel('Predicted Num')\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "\n",
    "# 根据岭回归和lasso模型的测试集的表现，效果差不多，lasso稍微好一点点。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
